From cbe13f6dc4162c89e0c5299cc81ac11e3613213f Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Wed, 29 Mar 2006 12:41:33 -0700 Subject: [PATCH] [IA64] set_metaphysical_mode fix If the old mode is metaphysical mode and the new mode is virtual mode. set_one_rr(0, PSCB(vcpu,rrs[0]) will not set machine region register 0, because at this time, PSCB(vcpu,metaphysical_mode) is 1, VMM need to update metaphysical_mode first, then call set_one_rr. Signed-off-by: Anthony Xu --- xen/arch/ia64/xen/vcpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/ia64/xen/vcpu.c b/xen/arch/ia64/xen/vcpu.c index 5616088739..8bf3bac9af 100644 --- a/xen/arch/ia64/xen/vcpu.c +++ b/xen/arch/ia64/xen/vcpu.c @@ -172,10 +172,10 @@ void vcpu_set_metaphysical_mode(VCPU *vcpu, BOOLEAN newmode) { /* only do something if mode changes */ if (!!newmode ^ !!PSCB(vcpu,metaphysical_mode)) { + PSCB(vcpu,metaphysical_mode) = newmode; if (newmode) set_metaphysical_rr0(); else if (PSCB(vcpu,rrs[0]) != -1) set_one_rr(0, PSCB(vcpu,rrs[0])); - PSCB(vcpu,metaphysical_mode) = newmode; } } -- 2.30.2